#include "cputest.h"

TEST(test12, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test13, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"bsf %%ebx, %%ebx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test14, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"bsf %%ebx, %%ebx \n\t" \
	"bsf %%edx, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test15a, \
	"movl $0, %%eax \n\t" \
	"l_%=: \n\t" \
	"test $1, %%eax \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test15b, \
	"movl $1, %%eax \n\t" \
	"l_%=: \n\t" \
	"test $1, %%eax \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test16, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test17, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test18, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test19, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test20, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test21, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test22, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test23, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test24, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test25, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"paddb %%mm0, %%mm6 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test26, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"paddb %%mm0, %%mm6 \n\t" \
	"paddb %%mm0, %%mm7 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test30, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test31, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test32, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test33, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test34, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test35, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test36, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"paddb %%mm6, %%mm7 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test40, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"pextrw $0, %%mm1, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test41, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"pextrw $0, %%mm2, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test42, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"pextrw $0, %%mm3, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test43, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"pextrw $0, %%mm4, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test44, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"pextrw $0, %%mm5, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test45, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"pextrw $0, %%mm6, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test46, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"paddb %%mm6, %%mm7 \n\t" \
	"pextrw $0, %%mm7, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

test12: 4.041338
test13: 6.041336
test14: 8.165452
test15a: 7.161617
test15b: 5.042841
test16: 15.086459
test17: 14.377882
test18: 16.122031
test19: 11.960372
test20: 6.041252
test21: 6.161442
test22: 6.164379
test23: 8.161872
test24: 10.287157
test25: 12.327512
test26: 14.372839
test30: 6.041386
test31: 6.041436
test32: 6.041318
test33: 8.164309
test34: 12.288413
test35: 13.580466
test36: 16.622040
test40: 18.744924
test41: 24.958749
test42: 31.207688
test43: 37.600742
test44: 44.287898
test45: 50.485764
test46: 57.026453
